From: Po Lu Date: Sun, 20 Mar 2022 05:51:19 +0000 (+0000) Subject: Implement `haiku_delete_terminal' X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~16^2~2370^2~1034 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=a232a8a22c6a228d871ff8df7cd25b0cabe3e5fb;p=emacs.git Implement `haiku_delete_terminal' * src/haikuterm.c (haiku_delete_terminal): Actually delete the terminal instead of aborting. --- diff --git a/src/haikuterm.c b/src/haikuterm.c index 4ae64129ef1..221bdfd2ee1 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -115,7 +115,25 @@ haiku_toolkit_position (struct frame *f, int x, int y, static void haiku_delete_terminal (struct terminal *terminal) { - emacs_abort (); + struct haiku_display_info *dpyinfo = terminal->display_info.haiku; + struct terminal *t; + + if (!terminal->name) + return; + + block_input (); + be_app_quit (); + + /* Close all frames and delete the generic struct terminal. */ + for (t = terminal_list; t; t = t->next_terminal) + { + if (t->type == output_haiku && t->display_info.haiku == dpyinfo) + { + delete_terminal (t); + break; + } + } + unblock_input (); } static const char *